|
Программируем по-русски
|
Основная задача Глагола — дать человеку возможность воплощать свои мысли на языке, близком к его родному языку. Издатель Глагола
|
(******************************************************************************) (**) ОТДЕЛ УниВин+; (******************************************************************************) (* НАЗНАЧЕНИЕ: перекодировка текстовых файлов в УНИ и в ВИН *) (******************************************************************************) ИСПОЛЬЗУЕТ ОС ИЗ "...\Отделы\Обмен\", Знак ИЗ "...\Отделы\Иное\", Параметр ИЗ "...\Отделы\Обмен\", Читать ИЗ "...\Отделы\Обмен\", Писать ИЗ "...\Отделы\Обмен\", Вывод ИЗ "...\Отделы\Обмен\", Файл ИЗ "...\Отделы\Обмен\"; (******************************************************************************) ЗАДАЧА Ошибка1(ц-:ЦЕПЬ); УКАЗ Вывод.Цепь(ц); Вывод.Цепь("^УниВин <ВУНИ> <ВВИН> вх.файл(ы)"); (* Пояснение: при записи текста в поток (в т.ч. на экран) * знак ^ обозначает переход на новую строку и сброс данных *) СТОП(1) КОН Ошибка1; (******************************************************************************) ЗАДАЧА Ошибка2(ц1-,ц2-:ЦЕПЬ); УКАЗ Вывод.Цепь(ц1); Ошибка1(ц2) КОН Ошибка2; (******************************************************************************) ЗАДАЧА Перевод(ч:Читать.Поток; п:Писать.Поток; УвВ:КЛЮЧ); (* УвВ=ВКЛ, если перевод Уни В Вин *) УКАЗ ЕСЛИ УвВ ТО ч.видЗнаков:=Читать.знУни; п.видЗнаков:=Писать.знВин ИНАЧЕ ч.видЗнаков:=Читать.знВин; п.видЗнаков:=Писать.знУни КОН; ПОКА НЕ Читать.Конец(ч) ВЫП Писать.ЗнакЦепи(п,Читать.ЗнакЦепи(ч)) КОН КОН Перевод; (******************************************************************************) ЗАДАЧА Голова(); ПЕР ч:Читать.Поток; п:Писать.Поток; чимя:Файл.ВПолного; путь:Файл.ВПути; имя:Файл.ВИмени; тип:Файл.ВТипа; увв,рез:КЛЮЧ; парам:ЦЕЛ; поиск:Файл.Поиск; ЗАДАЧА НовоеИмя; ПЕР пимя:ДОСТУП К ЦЕПЬ; УКАЗ СОЗДАТЬ(пимя,поиск.имя); ЕСЛИ ОС.СледующийПоискФ(поиск) ТО НовоеИмя КОН; Вывод.Цепь(пимя^); Вывод.Цепь("^"); Файл.РазобратьИмя(пимя^,путь,имя,тип); Файл.СобратьИмя(чимя,путь,имя,"BAK"); рез:=ОС.УдалитьФ(чимя); рез:=ОС.ПереименоватьФ(пимя^,чимя); ч:=Читать.Открыть(чимя); ЕСЛИ ч=ПУСТО ТО Ошибка2(чимя," не открывается") КОН; п:=Писать.Открыть(пимя^); ЕСЛИ п=ПУСТО ТО Ошибка2(пимя^," не открывается") КОН; Перевод(ч,п,увв); Читать.Закрыть(ч); Писать.Закрыть(п) КОН НовоеИмя; УКАЗ парам:=1; ЕСЛИ парам >= Параметр.всего ТО Ошибка1("Нет параметров") КОН; Параметр.Текст(парам,чимя); ЕСЛИ чимя = "ВУНИ" ТО увв:=ОТКЛ АЕСЛИ чимя = "ВВИН" ТО увв:=ВКЛ ИНАЧЕ Ошибка1("Неверный параметр") КОН; УВЕЛИЧИТЬ(парам); ЕСЛИ парам >= Параметр.всего ТО Ошибка1("Нет имени входного файла") КОН; Параметр.Текст(парам,чимя); ЕСЛИ НЕ ОС.ПервыйПоискФ(чимя,поиск) ТО Ошибка2(чимя," не найден(ы)") КОН; НовоеИмя КОН Голова; УКАЗ Голова КОН УниВин. ▲ Вопросы, замечания и предложения высылайте на atimopheyev@yahoo.com или Издателю Глагола:
|
|